package com.gqb.wangyi;

import java.util.Scanner;

public class Main1 {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		while (in.hasNextInt()) {// 注意while处理多个case
			Integer num = in.nextInt();
			if (num > 0 && num < 10000) {
				int num1=getSortedNumber(num);
				int num2=getReversedNumber(num1);
				int cha=num1-num2;
				if (cha == 0) {
					System.out.println(num1 + "-" + num2 + "=0000");
				} else {
					while(cha!=6174){
						System.out.println(num1 + "-" + num2 + "=" + cha);
						num1 = getSortedNumber(cha);
						num2 = getReversedNumber(num1);
						cha=num1-num2;
					}
					System.out.println(num1 + "-" + num2 + "=" + cha);
				}
			} else {
				break;
			}
		}
	}
	public static int getResult(int number) {
		int result = getSortedNumber(number)
				- getReversedNumber(getSortedNumber(number));
		return result;
	}

	public static int getSortedNumber(int number) {
		int digitsTester = getDigitsTester(number);

		// 计算出1000是10的3次方
		int exponent = (int) Math.log10(digitsTester);

		int[] tempArray = new int[4];
		for (int i = 0; i <= exponent; i++) {
			// tempArray[i] = 1234 / 1000 = 1
			tempArray[i] = number / digitsTester;
			// number = 1234 - 1234 / 1000 (=1) * 100 = 234
			number = number - number / digitsTester * digitsTester;
			// digitsTester = 1000 / 10 = 100
			digitsTester = digitsTester / 10;
		}

		int[] sortedArray = getSortedArray(tempArray);
		int temp1 = sortedArray[3];
		int temp2 = sortedArray[2];
		int temp3 = sortedArray[1];
		int temp4 = sortedArray[0];

		// int sortedNumber = 0;
		int digitsTester2 = getDigitsTester(number);
		// for (int i = sortedArray.length - 1; i > 0; i--) {
		// sortedNumber = sortedArray[i] * digitsTester2;
		// digitsTester2 /= 10;
		// }
		int sortedNumber = temp1 * 1000 + temp2 * 100 + temp3 * 10 + temp4 * 1;
		return sortedNumber;
	}

	public static int[] getSortedArray(int[] tempArrayForSort) {
		for (int i = 0; i < tempArrayForSort.length - 1; i++) {
			int currentMin = tempArrayForSort[i];
			int currentMinIndex = i;

			for (int j = i + 1; j < tempArrayForSort.length; j++) {
				if (currentMin > tempArrayForSort[j]) {
					currentMin = tempArrayForSort[j];
					currentMinIndex = j;
				}
			}

			if (currentMinIndex != i) {
				tempArrayForSort[currentMinIndex] = tempArrayForSort[i];
				tempArrayForSort[i] = currentMin;
			}
		}
		return tempArrayForSort;
	}

	public static int getReversedNumber(int sortedNumber) {
		int reversedNumber = 0;
		int tempForReverse = 0;
		int digitsTester = getDigitsTester(sortedNumber);

		// 计算出1000是10的3次方
		int exponent = (int) Math.log10(digitsTester);
		for (int i = 0; i <= exponent; i++) {
			// temp1 = 1234 / 1000 = 1
			tempForReverse = sortedNumber / digitsTester;
			// number = 1234 - 1234 / 1000 (=1) * 100 = 234
			sortedNumber = sortedNumber - sortedNumber / digitsTester
					* digitsTester;
			// digitsTester = 1000 / 10 = 100
			digitsTester = digitsTester / 10;
			// reversedNumber = 0 + 1 * 10^0
			reversedNumber = reversedNumber + tempForReverse
					* (int) Math.pow(10, i);
			// if (reverseTemp1 == 0) {
			// reversedNumber = reversedNumber + (int)Math.pow(10, i);
			// }
		}
		return reversedNumber;
	}

	public static int getDigitsTester(int sortedNumber) {
		int digitsTester = 0;
		// 计算出number是几位的正整数
		// e.g. i = 10; i < 1234; i *= 10
		for (int i = 10; i < sortedNumber; i *= 10) {
			// digitsTester = 1000
			digitsTester = i;
			// if i = 10000 > 1234 , digitsTester = 1000 / 10 = 1000
			if (i > sortedNumber) {
				digitsTester /= 10;
				// break;
			}
		}
		return digitsTester;
	}
}
